﻿#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

struct PersonEncapsulate
{
	char mName[64];
	int mAge;
};
void personEat(struct PersonEncapsulate* p)
{
	printf("1.%s在吃人饭！\n", p->mName);
}
struct Dog
{
	char mName[64];
	int mAge;
};
void dogEat(struct Dog* d)
{
	printf("2.%s在吃狗粮！\n", d->mName);
}
void testPersonEncapsulate()
{
	struct PersonEncapsulate p;
	strcpy(p.mName, "德玛西亚");
	personEat(&p);//1.德玛西亚在吃饭！

	struct Dog d;
	strcpy(d.mName, "旺财");
	dogEat(&d);//2.旺财在吃狗粮！

	//3.C语言的封装，属性和行为分开处理了，类型检测也不够；
	dogEat(&p);//2.德玛西亚在吃狗粮！
}

//main252：c语言下的封装
int main252()
{
	testPersonEncapsulate();

	system("pause");
	return EXIT_SUCCESS;
}